#pragma once
#include <iostream>
#include <vector>

/** \class Board
	\brief The Board
*/
class Board
{
public:
	/**
	* Default constructor
	*/
	Board();

	/**
	* Constructor which sets width and height
	*/
	Board(int width, int height);

	/**
	* Destructor
	*/
	~Board();

	/**
	* Initialize the board
	*/
	void initialize();
	
	/**
	* Returns the width
	*/
	int getWidth();

	/**
	* Returns the height
	*/
	int getHeight();

	/**
	* Returns the board grid
	*/
	std::vector< std::vector<char> >& getGrid();

	/**
	* Print board to screen
	*/
	void output();

	/**
	* Assignment opperator for board
	*/
	Board& Board::operator=(const Board& b);
private:
	int m_width; ///< Width of the board
	int m_height; ///< Height of the board
	std::vector< std::vector<char> > m_grid; ///< The grid
};

